package org.jeecg.modules.htxincailiao.account.domain.vo;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;


@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="userInfo对象", description="userInfo")
public class HTUserInfoVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**用户ID*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "用户ID")
    private String id;
    /**腾讯账号ID（管理腾讯平台账户体系）*/
    @Excel(name = "腾讯账号ID（管理腾讯平台账户体系）", width = 15)
    @ApiModelProperty(value = "腾讯账号ID（管理腾讯平台账户体系）")
    private String tencentAccountId;
    /**账户类型*/
    @Excel(name = "账户类型", width = 15, dicCode = "account_type")
    @Dict(dicCode = "account_type")
    @ApiModelProperty(value = "账户类型")
    private Integer accountType;
    /**注册渠道(0-PC，1-公众号，2-后台）*/
    @Excel(name = "注册渠道(0-PC，1-公众号，2-后台）", width = 15, dicCode = "sign_up_channel")
    @Dict(dicCode = "sign_up_channel")
    @ApiModelProperty(value = "注册渠道(0-PC，1-公众号，2-后台）")
    private Integer channel;
    /**手机号*/
    @Excel(name = "手机号", width = 15)
    @ApiModelProperty(value = "手机号")
    private String phoneNumber;
    /**用户名*/
    @Excel(name = "用户名", width = 15)
    @ApiModelProperty(value = "用户名")
    private String username;
    /**邮箱*/
    @Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String email;
    /**邮编*/
    @Excel(name = "邮编", width = 15)
    @ApiModelProperty(value = "邮编")
    private String zipcode;
    /**姓名*/
    @Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
    private String realName;
    /**参会人员*/
    @Excel(name = "参会人员", width = 15)
    @ApiModelProperty(value = "参会人员")
    private String participant;
    /**昵称*/
    @Excel(name = "昵称", width = 15)
    @ApiModelProperty(value = "昵称")
    private String nickname;

//    /**密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)*/
//    @Excel(name = "密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)", width = 15)
//    @ApiModelProperty(value = "密码(必须包含大小写字母和数字的组合，可以使用特殊字符(~!@#$%^&*)，长度在8-32之间)")
//    private java.lang.String password;

    /**工号*/
    @Excel(name = "工号", width = 15)
    @ApiModelProperty(value = "工号")
    private String workNumber;
    /**生日*/
    @Excel(name = "生日", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "生日")
    private Date birthday;
    /**地址ID*/
    @Excel(name = "地址ID", width = 15)
    @ApiModelProperty(value = "地址ID")
    private String buyerAddressId;
    /**头像*/
    @Excel(name = "头像", width = 15)
    @ApiModelProperty(value = "头像")
    private String avatar;
    /**性别*/
    @Excel(name = "性别", width = 15, dicCode = "gender")
    @Dict(dicCode = "gender")
    @ApiModelProperty(value = "性别")
    private Integer gender;
    /**职位*/
    @Excel(name = "职位", width = 15)
    @ApiModelProperty(value = "职位")
    private String position;
    /**简介*/
    @Excel(name = "简介", width = 15)
    @ApiModelProperty(value = "简介")
    private String introduction;
    /**密码盐*/
    @Excel(name = "密码盐", width = 15)
    @ApiModelProperty(value = "密码盐")
    private String salt;
    /**审核状态*/
    @Excel(name = "审核状态", width = 15, dicCode = "audit_status")
    @Dict(dicCode = "audit_status")
    @ApiModelProperty(value = "审核状态")
    private Integer auditStatus;
    /**审核人*/
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String auditUsername;
    /**是否冻结*/
    @Excel(name = "是否冻结", width = 15, dicCode = "is_locked")
    @Dict(dicCode = "is_locked")
    @ApiModelProperty(value = "是否冻结")
    private Integer isLocked;
    /**逻辑删除：1表示删除，0表示未删除。*/
    @Excel(name = "逻辑删除：1表示删除，0表示未删除。", width = 15)
    @ApiModelProperty(value = "逻辑删除：1表示删除，0表示未删除。")
    private Integer isDeleted;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;


    @TableField(exist = false)
    /**联系人*/
    @Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
    private String contactPerson;

    @TableField(exist = false)
    /**手机电话*/
    @Excel(name = "手机电话", width = 15)
    @ApiModelProperty(value = "手机电话")
    private String contactPhoneNumber;

    /**企业名称*/
    @Excel(name = "企业名称", width = 15)
    @ApiModelProperty(value = "企业名称")
    private String enterpriseName;
    /**行业分类ID*/
    @Excel(name = "行业分类", width = 15, dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "行业分类ID")
    private String industryCategoryId;
    /**营业执照*/
//	@Excel(name = "营业执照", width = 15)
    @ApiModelProperty(value = "营业执照")
    private String certificate;
    /**其他资质*/
//	@Excel(name = "其他资质", width = 15)
    @ApiModelProperty(value = "其他资质")
    private String otherCertificates;
    /**开户银行*/
    @Excel(name = "开户银行", width = 15)
    @ApiModelProperty(value = "开户银行")
    private String bankAccountName;
    /**银行账号*/
    @Excel(name = "银行账号", width = 15)
    @ApiModelProperty(value = "银行账号")
    private String bankAccountNum;
    /**机构Logo*/
//	@Excel(name = "机构Logo", width = 15)
    @ApiModelProperty(value = "机构Logo")
    private String logo;
    /**企业主图*/
//	@Excel(name = "企业主图", width = 15)
    @ApiModelProperty(value = "企业主图")
    private String cover;

    /**经营模式*/
    @Excel(name = "经营模式", width = 15, dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "经营模式")
    private String businessModelId;
    /**注册资金*/
    @Excel(name = "注册资金", width = 15)
    @ApiModelProperty(value = "注册资金")
    private String registeredCapital;
    /**年营业额*/
    @Excel(name = "年营业额", width = 15)
    @ApiModelProperty(value = "年营业额")
    private String yearlyTurnover;

    /**资质认证状态：0-未认证 1-认证中 2-已认证 3-认证驳回*/
    @Excel(name = "资质认证状态：0-未认证 1-认证中 2-已认证 3-认证驳回", width = 15, dicCode = "certificate_audit_status")
    @Dict(dicCode = "certificate_audit_status")
    @ApiModelProperty(value = "资质认证状态：0-未认证 1-认证中 2-已认证 3-认证驳回")
    private Integer certificateAuditStatus;

    @TableField(exist = false)
    private boolean hasSetPassword;

    @TableField(exist = false)
    private Integer pageNo;

    @TableField(exist = false)
    private Integer pageSize;


    /**企业地址ID*/
    @Excel(name = "企业地址ID", width = 15)
    @ApiModelProperty(value = "企业地址ID")
    private String enterpriseAddressId;
}
